package com.xuhuan.demo.principle.singleresponsibility;

/**
 * @author huan.xu
 * @date 2021/9/30 17:59
 * @description java设计模式 单一原则 案例2
 * 1.遵守单一职责原则
 * 2.但是这样改动很大，即将类分解，同时修改客户端
 * 3.改进方案：直接修改Vehicle类，改动的代码比较少--》方案3
 */
public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle vehicle = new RoadVehicle();
        vehicle.run("摩托车");
        vehicle.run("汽车");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");
    }
}

/**
 * 在公路上跑的交通工具
 */
class RoadVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路上跑");
    }
}

/**
 * 在天上飞的交通工具
 */
class AirVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在天空飞行");
    }
}